package com.tt.payee.domain.vo_commonc_entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import javax.validation.constraints.Min;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author zhaochongsen
 * @Description
 * @date 2020/5/15 9:23
 */
@Data
public abstract class AbEntity {

    /**
     * 搜索关键字
     **/
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    String searchValue;

    /**
     * 页码
     **/
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    @Min(value=1, message = "页码必须大于等于1")
    Integer currentPage=1;

    /**
     * 每页数量
     **/
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    @Min(value=1, message = "每页数量必须大于等于1")
    Integer pageSize=9999999;

    /**
     * 最小金额
     **/
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    @Min(value = 0, message = "请填写大于等于1的数字")
    BigDecimal minAmount = null;

    /**
     * 最大金额
     **/
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    @Min(value = 0, message = "请填写大于等于1的数字")
    BigDecimal maxAmount = null;

    /**
     * 最小创建时间
     **/
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    //@Pattern(message = "时间格式错误，请遵循yyyy-MM-dd格式", regexp="^$|((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss")
    Date createdStart = null;
    /**
     * 最大创建时间
     **/
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    //@Pattern(message = "时间格式错误，请遵循yyyy-MM-dd格式", regexp="^$|((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss")
    Date createdEnd = null;
    /**
     * 最小更新时间
     **/
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    //@Pattern(message = "时间格式错误，请遵循yyyy-MM-dd格式", regexp="^$|((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss")
    Date updatedStart = null;
    /**
     * 最大更新时间
     **/
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    //@Pattern(message = "时间格式错误，请遵循yyyy-MM-dd格式", regexp="^$|((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss")
    Date updatedEnd = null;

}
